import { message } from "antd";
import api from 'api'
const { user, users } = api

export default {
    namespace: 'studentManagement1',
    state: {
        studentList: [],
    },

    subscriptions: {
        setupHistory({ dispatch, history }) {  // 监听路由变化,这时候可以做一些处理,
            // 比如说根据路由的变化来获取数据，可以使用dispatch来触发action
            // 比如说根据路由的变化来改变一些状态
            return history.listen(({ pathname, state }) => {
                if (pathname === '/studentManagement1') {
                    dispatch({
                        type: 'featchStudentList',
                    })
                }
            })
        },
    },

    effects: {
        *featchStudentList({ }, { call, put, select }) {
            const res = yield call(users)
            if (res.code === 200) {
                yield put({
                    type: 'updateState',
                    payload: { studentList: res.data },
                })
            } else {
                message.error("请求出错")
            }

        },
        *addStudent({ payload }, { call, put, select }) {
            const res = yield call(user, payload)
            if (res.code === 200) {
                yield put({
                    type: 'featchStudentList',
                });
                message.success('添加成功');
            } else {
                message.error('添加失败');
            }

        },
    },
    reducers: {
        updateState(state, action) {//更新state
            return { ...state, ...action.payload };//使用对象展开运算符，将state和action.payload合并成一个新的对象,这里面的state是原来的state，action.payload是新的state
        },
    }
}